package com.book.core.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * @TableName sys_menu
 */
@TableName(value = "sys_menu")
@Data
public class SysMenu implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Integer menuId;
    /**
     * 权限标识
     */
    @NotBlank(message = "权限标识不能为空")
    private String menuCode;
    /**
     * 权限名
     */
    @NotBlank(message = "权限名不能为空")
    private String menuName;
    /**
     * 父级菜单
     */
    @NotNull(message = "父级菜单不能为空")
    private Integer parentId;
    /**
     * 图标
     */
    private String icon;
    /**
     * 类型（0,目录，1菜单。2按钮）
     */
    @NotNull(message = "权限类型不能为空")
    private Integer type;
    /**
     * 路由路径
     */
    private String path;
    /**
     * 组件位置
     */
    private String component;
    /**
     * 是否可见(0:显示,1:隐藏)
     */
    private Integer visible;
    /**
     * 状态(0:启用,1:禁用)
     */
    private Integer status;
    /**
     * 创建人ID
     */
    private Integer creatorId;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 是否可关闭
     */
    private Integer closable;
    /**
     * 描述
     */
    private String description;
}
